科目名 □プログラミング言語とコンパイラ
担当教員   稲永 健太郎     
対象学年   3年   クラス   [417]  
講義室   12107教室   開講学期   後期  
曜日・時限   木4   単位区分   選択  
授業形態     単位数   2  
準備事項    
備考    

講義概要/Class Outline

本講義では、ソフトウェア開発で用いられるプログラミング言語と、その言語で記述されたプログラムから機械語へ変換するツールであるコンパイラについて学ぶ。プログラミング言語については、その種類や特徴、言語仕様について理解を深める。コンパイラについては、その基本原理や構成、処理の流れについて理解を深める。また、コンパイラ以外のその他のプログラミング言語に関する各種ツールについても学ぶ。  

講義計画 /Class Structure

内容
1 プログラミング言語(1)
プログラミング言語の種類や特徴について学ぶ。
2 プログラミング言語(2)
各種プログラミング言語を用いたプログラミング技法について学ぶ。
3 言語処理系
コンパイラを含む言語処理系の構成や各構成要素の役割、その他プログラミング言語に関する各種ツールについて学ぶ。
4 字句解析(1)
コンパイラでの字句解析で必要となる正規表現や各種有限オートマトンについて学ぶ。
5 字句解析(2)
正規表現や有限オートマトンを用いた字句解析法について学ぶ。
6 構文解析(1)
プログラミング言語の定義や文法、構文解析法の基本事項について学ぶ。
7 構文解析(2)
基本的なトップダウン構文解析法について学ぶ。
8 構文解析(3)
LL(1)構文解析法について学ぶ。
9 構文解析(4)
各種ボトムアップ構文解析法について学ぶ。
10 意味解析
構文木やオブジェクトを用いた意味解析について学ぶ。
11 目的コード言語と実行時環境
目的コード言語としてのアセンブリ言語や各種記憶構造等の実行時環境について学ぶ。
12 コンパイラの設計(1)
コンパイラの設計法の概要および目的コード言語を用いたコード生成法について学ぶ。
13 コンパイラの設計(2)
目的コード言語を用いたコード生成法について学ぶ。
14 まとめ
これまでの内容について復習する。
 

学習・教育目標/Class Target 1.プログラミング言語およびコンパイラを含む言語処理系に関する基礎的事項を理解している。
2.コンパイラによる字句解析および構文解析について理解している。
3.コンパイラにおける実行時環境および意味解析について理解している。
4.コンパイラにおける各種コード言語とその生成法について理解している。  
評価基準/GradingCriteria 評価方法をもとに下記の評価基準を設定する。
・秀(S):1?4すべてを満たす。
・優(A):1および2?4のうちいずれか2つを満たす。
・良(B):1および2?4のうちいずれか1つを満たす。
・可(C):1のみを満たす。  
評価方法/GradingMethod 1?4の学習・教育目標のそれぞれについて、以下のような判定を行う。
1.定期試験に合格し、かつ第1回の小テストに合格
2.第2回および第3回の小テストともに合格
3.第4回の小テストに合格
4.第5回の小テストに合格  
受講上の注意/Class Rules  
受講制限/Prerequisit  
関連する科目/Related Class プログラミング基礎  ソフトウェア演習Ⅰ・Ⅱ;  データ構造とアルゴリズムⅠ・Ⅱ;・Ⅲ  アルゴリズム論Ⅰ・Ⅱ;  計算モデル論  
教科書/Text
著者名  
著書名  
出版社名  
ISBNコード  
指定図書/Assigned Books
著者名 湯淺 太一  
著書名 コンパイラ  
出版社名 昭晃堂  
ISBNコード 4-7856-2050-1  
著者名 大川 知、鈴木 大郎  
著書名 コンパイラ  
出版社名 近代科学社  
ISBNコード 4-7649-0359-8  
著者名 R.ハンター (安村 通晃 訳)  
著書名 コンパイラ構成論  
出版社名 近代科学社  
ISBNコード 4-7649-0188-9  
参考文献/Bibliography
著者名  
著書名  
>出版社名  
ISBNコード